package com.zzz.bookdemo.mapper;

/*
 * @author zzr
 * @date: 2025/09/23  19:55
 * @description:
 */

import com.zzz.bookdemo.model.BookInfo;
import com.zzz.bookdemo.model.PageRequest;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface BookInfoMapper {


    @Insert("insert into book_info " +
            "(book_name,author,count,price,publish,status) " +
            "values (#{bookName}, #{author},#{count},#{price},#{publish},#{status})")
    Integer insertBook(BookInfo bookInfo);


    @Select("select count(1) from book_info where status!=0")
    Integer count();

    @Select("select * from book_info where status != 0 order by id desc limit #{offset},#{pageSize}")
    List<BookInfo> queryBookListByPage(PageRequest pageRequest);

    @Select("select * from book_info where id = #{bookId} and status != 0")
    BookInfo queryBookById(Integer bookId);

    Integer updateBook(BookInfo bookInfo);

    @Update("update book_info set status=0 where id = #{bookId}")
    Integer deleteBookById(Integer bookId);

    void batchDeleteBook(List<Integer> ids);
}
